The present invention relates generally to video display systems and output sources and, more particularly, the present invention relates to correcting display and output features using gamma correction for such occasions as for video display or graphics printing.
Computer systems typically include a video display monitor and a printing device attached to the computer system. The computer system includes a graphics signal processor that converts appropriate signals into displayable signals on the video monitor. Further, the computer system is able to generate graphics for printing based on the same signals that are printed on the printer. Video monitors typically display the digital data as an analog image. Thus, there needs to be a conversion process of converting the digital signal into an analog signal. To approximate a digital pattern, the images are divided into arrays of pixel elements that can be stimulated to emit a range of brightness. A particular brightness of light that a pixel emits is called its “value.”
Most video monitors, especially cathode grade 2 systems, have a nonlinear transfer characteristic. This means that the CRTs fail to reproduce brightness in a linear fashion, but instead produce it as a nonlinear function of the control grid video drawing. Accordingly, the doubling of voltage applied by the CRT monitors does not double the brightness of the associate pixel. When display graphics are produced on graphics workstations, it is necessary to compensate for this nonlinearity. The compensation of brightness intensity values to produce a linear gradation of brightness intensities in response to a linear range of brightness intensity values is called “gamma correction.” Accordingly, a conversion circuit is typically included in a computer system video processor to provide linear response on the graphics monitor and this conversion circuit is typically called a gamma correction circuit.
One method of performing gamma correction on digitized intensity signal is to translate each of the N-bit red, green, and blue (RGB) brightness intensity values to compensated N-bit brightness intensity values using a brightness lookup table (LUT). This LUT is typically stored in a solid state memory, usually in a read-only memory (ROM), and includes a range of brightness intensity values, each of which is associated with a corresponding gamma corrected value. The present ROM gamma correction tables, however, are fixed in gamma values that cannot be changed once the ROM is programmed, so correction updates are impossible without removing the ROM device completely.
One solution is to use a gamma correction LUT stored in random access memory (RAM) for pixel brightness. One disadvantage of this method and apparatus is that RAM brightness LUTs do not allow for data compression. Another disadvantage is that often the level of precision provided by the digital signal processor is greater than that of the actual output device translating the signal into a viewable display. Thus, extra memory utilized to anticipate every color and pixel value requires extra storage capabilities that are lost in the actual display of the pixel values once translated for use for display on the display monitor.
Accordingly, what is needed is a gamma correction system and method that overcomes the limitations of the prior art by placing less demands on memory and providing accurate correction through critical ranges of pixel values to be displayed. Further, the gamma correction should provide a precision level at least comparable with that of the actual display system.